<?php 

#	Fastfoo - CMS developer under CakePHP / http://fast-foo.com
#	Copyright (C) 2010  Antonio Irlandés García

#	This program is free software: you can redistribute it and/or modify
#	it under the terms of the GNU General Public License as published by
#	the Free Software Foundation, either version 3 of the License, or
#	(at your option) any later version.

#	This program is distributed in the hope that it will be useful,
#	but WITHOUT ANY WARRANTY; without even the implied warranty of
#	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#	GNU General Public License for more details.

#	You should have received a copy of the GNU General Public License
#	along with this program.  If not, see <http://www.gnu.org/licenses/>.

class User extends AppModel{
	
	//Nombre modelo
	public $name = 'User';
	
	//Nombre tabla BD
	public $useTable = 'users';

	//Campo de ordenación por defecto
	public $order = 'User.id ASC';

	//Usado para la validacion de los datos de entrada
	public $validate = array(
		'username' => array('required' => array('rule' => 'notEmpty', 'message' => 'user_no_empty'),'unique' => array('rule' => 'isUnique', 'message' => 'user_exist')),
		'password' => array('required' => array('rule' => 'notEmpty', 'message' => 'password_no_empty')),
		'email' => array('required' => array('rule' => 'email', 'message' => 'email_must_be_email'),'unique' => array('rule' => 'isUnique', 'message' => 'email_exist')),
		'group_id' => array('required' => array('rule' => 'notEmpty', 'message' => 'group_no_empty')),
		'created' => array('rule' => '/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/i', 'message' => 'created_must_be_date','allowEmpty' => false),
		'modified' => array('rule' => '/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/i', 'message' => 'modified_must_be_date','allowEmpty' => true)
	);


	//Asociacion con el modelo Grupo
	public $belongsTo = array('Group');
	//Comportamiento
	public $actsAs = array('Acl' => array('type' => 'requester'));
	//Función requerida por el tipo de comportamiento
	public function parentNode() {
		if (!$this->id && empty($this->data)) {
		    return null;
		}
		$data = $this->data;
		if (empty($this->data)) {
		    $data = $this->read();
		}
		if (empty($data['User']['group_id'])) {
		    return null;
		} else {
		    return array('Group' => array('id' => $data['User']['group_id']));
		}
	}

	/**
	 * Modifica el campo "active" de los registros
	 *
	 * @param integer $id indica el identificador del registro a modificar
	 * @param integer $value indica el valor a modificar en la BD
	 * @return void
	 */
	public function setActive($id,$value){
		//Activo los usuarios
		$this->query("UPDATE " .strtolower($this->useTable)." SET active='".$value."' WHERE id='".$id."' LIMIT 1;");
	}


}
?>
